IBMMQ 您所在的位置:网站首页 ibm mq队列通道定义 IBMMQ

IBMMQ

2024-06-30 16:21| 来源: 网络整理| 查看: 265

 

问题:MQ队列管理器中的发送方通道无法启动,日志提示:AMQ9569:未定义死信队列

在查看MQ日志,有提示AMQ9569:未定义死信队列。

MQ错误日志位置

windows下:C:\ProgramData\IBM\MQ\qmgrs\mq队列管理器名\errors

linux下:/var/mqm/qmgrs/

解决:

1.选中无法启动发送方通道的队列管理器名称,右键菜单-【属性】;

2.在【属性】菜单中选中【扩展】

3.点击“死信队列”后的【选择】,选择系统自定义死信队列QEAD

4.保存配置,点击【应用】,【确定】

5.重新启动发送方通道,此时问题解决。

 

分析 为什么要定义死信队列。

例如当一条消息到达目的队列管理器之后却发现目的队列并不存在。或者目的队列出现不能接收信消息的情况,比如目的队列已经满了,或者它被设置成不允许再加入新的消息。此时需要把消息放入死信队列。

如果没有MQ队列管理器没有定义死信队列,报文无法放入死信队列,则会导致发送方通道无法启动,错误消息滞留在传输队列中。

官方介绍

死信(未传递的消息)队列是存储无法发送到其正确目的地的消息的队列。有时候会出现队列管理器不能把消息发送到目的地的情况,此时消息将被发送到某个死信队列中。死信队列中的消息常常暗示了系统可能出现的问题。例如当一条消息到达目的队列管理器之后却发现目的队列并不存在。或者目的队列出现不能接收信消息的情况,比如目的队列已经满了,或者它被设置成不允许再加入新的消息。并不是所有的放消息操作的失败都导致消息被放入死信队列,例如,由于本地队列出现错误造成应用程序不能“放”消息,此时MQI调用直接把错误码返回给应用程序。

有些错误只能由死信队列报告,例如,一条消息穿越网络之后到达目的队列管理器,却发现目的队列已满。发现错误的机器不同于最初“放”消息应用程序所在的机器,甚至可能放消息的应用程序已不在运行状态。此时目的队列管理器把这条消息发往它所拥有的死信队列,而不是简单地扔掉该条消息。这样使得这次错误是可见的,也给应用程序提供了一个改正错误的机会。

死信队列是WebSphere MQ面对远端系统错误时的一种解决方案。应用程序可以利用WebSphere MQ提供的其他一些工具来监视并确保消息的可靠传送和接收。

在队列管理器创建时,系统会缺省创建一个死信队列,队列名是SYSTEM.DEAD.LETTER.QUEUE。 建议在生产系统上,需要独立创建一个死信队列,而不使用系统缺省的死信队列。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有